package com.yanggu.scala.chapater13.function

//参数(类型)推断
object ParameterInfer {

  def main(args: Array[String]): Unit = {
    //参数类型是可以推断时，可以省略参数类型
    //当传入的函数，只有单个参数时，可以省去括号
    //如果变量只在=>右边只出现一次，可以用_来代替
    val list = List(1, 2, 3, 4)

    //匿名函数完整声明
    println(list.map((x: Int) => x + 1))
    //如果传入的参数类型是可以推断的, 参数类型可以省略
    println(list.map((x) => x + 1))
    //当传入的参数只有一个参数时, 小括号可以省略
    println(list.map(x => x + 1))
    //当变量只在右边出现一次时可以用_代替
    println(list.map(_ + 1))
    println(list.reduce(_ + _))
    println(list.sum)
  }

}
